/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import control.*;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import java.util.ArrayList;
import javax.faces.model.SelectItem;
import javax.swing.JOptionPane;

/**
 *
 * @author juampi
 */
public class CrearEspacio {
    private String nombreEspacio;
    private String codigoModalidad;
    private String descripcionEspacio;
    private String codigoMateria;
    private Date fechaCreacion;
    private ArrayList<SelectItem> materiasDelDocente;
    private ArrayList<SelectItem> modalidades;

    public CrearEspacio(){
        fechaCreacion=new Date();

    }
    public String getNombreEspacio() {
        return nombreEspacio;
    }
    public void setNombreEspacio(String nombreEspacio) {
        this.nombreEspacio = nombreEspacio;
    }
    public String getDescripcionEspacio() {
        return descripcionEspacio;
    }
    public void setDescripcionEspacio(String descripcionEspacio) {
        this.descripcionEspacio = descripcionEspacio;
    }
    public Date getFechaCreacion() {
        return fechaCreacion;
    }
    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }
    public String getCodigoModalidad() {
        return codigoModalidad;
    }
    public void setCodigoModalidad(String codigoModalidad) {
        this.codigoModalidad = codigoModalidad;
    }
    public String getCodigoMateria() {
        return codigoMateria;
    }
    public void setCodigoMateria(String codigoMateria) {
        this.codigoMateria = codigoMateria;
    }
    public String crearEspacioCurso() {
        //String res="irAConfiguracionEspacioCurso";
        String res = "#";
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        Usuario u = GestorEspacioDB.getInstance().obtenerUsuario(user.getId());
        //Materia mat = GestorEspacioDB.getInstance().obtenerMateria(codigoMateria);
        //Modalidad mod = new Modalidad(codigoModalidad, "", "");
        if(nombreEspacio.trim().length()<4){
            FacesContext faces=FacesContext.getCurrentInstance();
            FacesMessage mensaje=new FacesMessage("El nombre del espacio debe contener minimamente 5 caracteres","El nombre del espacio debe contener minimamente 4 caracteres");
            faces.addMessage(null, mensaje);
            return "#";
        }
        EspacioCurso curso = new EspacioCurso(nombreEspacio.toUpperCase(), new Date(),descripcionEspacio);
        String codigoEsp = GestorEspacioDB.getInstance().crearEspacioCurso(u, curso);
        if((codigoEsp.compareTo("")==0)){
            String cadenaMensaje = "No se pudo crear el espacio de curso para "+u.getNombreCompleto()+" en este espacio personal por que ya existe un espacio de curso con el mismo nombre";
            res ="#";
            FacesMessage message = new FacesMessage(cadenaMensaje,cadenaMensaje);
            FacesContext.getCurrentInstance().addMessage(null, message);
        }else {
            FacesContext context = FacesContext.getCurrentInstance();
            ConfigurarEspacioCurso cep =(ConfigurarEspacioCurso) vr.resolveVariable(context, "configurarEspacioCurso");
            user.setCodigoCurso(codigoEsp);
            cep.setMostrarConfigurarEspacioCurso(true);
        }
        user.setCodigoCurso(codigoEsp);
        return res;
    }
    public void verificarExistencia() {

    }
    public ArrayList<SelectItem> getMaterias(){
                materiasDelDocente=new ArrayList<SelectItem>();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();
        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        ArrayList<Materia> mts=GestorEspacioDB.getInstance().listarMateriasDocente(user.getId());
        for(Materia m : mts){
            materiasDelDocente.add(new SelectItem(m.getCodigoMateria(),m.getNombreMateria()));
        }
        return materiasDelDocente;
    }
    public ArrayList<SelectItem> getModalidades(){
        modalidades=new ArrayList<SelectItem>();
//        ArrayList<Modalidad> mds=GestorEspacioDB.getInstance().listarModalidades();
//        for(Modalidad m : mds){
//            modalidades.add(new SelectItem(m.getCodigoModalidad(),m.getNombreModalidad()));
//        }
        return modalidades;
    }
}
